NexusPi Git Node
tests/frontend/settingsSearchUtils.test.js 786bddfe0aebae27a59e4e8aa7a87ae9a1163c12 (786bddfe) Text, 4.70 KB
T8b949e// SPDX-License-Identifier: 0BSD AND MIT
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3itTb4b4b4, Te6edf3expect Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72import Tb4b4b4{
Te6edf3buildSettingsSearchHaystackTb4b4b4,
Te6edf3camelCaseToSearchWordsTb4b4b4,
Te6edf3foldForSearchTb4b4b4,
Te6edf3matchesSettingSearchTb4b4b4,
Te6edf3normalizeSearchStringTb4b4b4,
Te6edf3tokenizeSettingsQueryTb4b4b4,
Te6edf3tokenMatchesHaystackTb4b4b4,
Tb4b4b4} Tff7b72from Ta5d6ff"../../meshchatx/src/frontend/js/settingsSearchUtils.js"Tb4b4b4;
Tff7b72const Te6edf3t Tff7b72= Tb4b4b4(Te6edf3keyTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3map Tff7b72= Tb4b4b4{
Ta5d6ff"app.theme"Tff7b72: Ta5d6ff"Theme"Tb4b4b4,
Ta5d6ff"app.dark_theme"Tff7b72: Ta5d6ff"Dark mode"Tb4b4b4,
Ta5d6ff"app.stranger_protection"Tff7b72: Ta5d6ff"Stranger protection"Tb4b4b4,
Ta5d6ff"settings.tabs.network"Tff7b72: Ta5d6ff"Network"Tb4b4b4,
Ta5d6ff"settings.tabs.privacy"Tff7b72: Ta5d6ff"Privacy"Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72return Te6edf3mapTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72?? Te6edf3keyTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"settingsSearchUtils"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"normalizeSearchString trims and strips zero-width"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeSearchStringTb4b4b4(Ta5d6ff" foo\u200b "Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"foo"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSearchStringTb4b4b4(Ta5d6ff"\uFEFF"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"tokenizeSettingsQuery splits on whitespace and punctuation"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3tokenizeSettingsQueryTb4b4b4(Ta5d6ff"dark theme"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4[Ta5d6ff"dark"Tb4b4b4, Ta5d6ff"theme"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenizeSettingsQueryTb4b4b4(Ta5d6ff"dark-mode"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4[Ta5d6ff"dark"Tb4b4b4, Ta5d6ff"mode"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenizeSettingsQueryTb4b4b4(Ta5d6ff"content_security/policy"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4[Ta5d6ff"content"Tb4b4b4, Ta5d6ff"security"Tb4b4b4, Ta5d6ff"policy"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenizeSettingsQueryTb4b4b4(Ta5d6ff"index.mu"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4[Ta5d6ff"index"Tb4b4b4, Ta5d6ff"mu"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"foldForSearch removes combining marks"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3foldForSearchTb4b4b4(Ta5d6ff"Café"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"cafe"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"camelCaseToSearchWords splits section ids"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3camelCaseToSearchWordsTb4b4b4(Ta5d6ff"strangerProtection"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"stranger protection"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3camelCaseToSearchWordsTb4b4b4(Ta5d6ff"networkSecurity"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"network security"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3camelCaseToSearchWordsTb4b4b4(Ta5d6ff"nomadRenderer"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"nomad renderer"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"tokenMatchesHaystack: short tokens are whole words"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3tokenMatchesHaystackTb4b4b4(Ta5d6ff"me"Tb4b4b4, Ta5d6ff"theme dark mode"Tb4b4b4, Ta5d6ff"themedarkmode"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenMatchesHaystackTb4b4b4(Ta5d6ff"me"Tb4b4b4, Ta5d6ff"messages mesh"Tb4b4b4, Ta5d6ff"messagesmesh"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenMatchesHaystackTb4b4b4(Ta5d6ff"me"Tb4b4b4, Ta5d6ff"me myself"Tb4b4b4, Ta5d6ff"memyself"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenMatchesHaystackTb4b4b4(Ta5d6ff"fi"Tb4b4b4, Ta5d6ff"suomi finnish fi locale"Tb4b4b4, Ta5d6ff"suomifinnishfilocale"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenMatchesHaystackTb4b4b4(Ta5d6ff"fi"Tb4b4b4, Ta5d6ff"firewall allowlist"Tb4b4b4, Ta5d6ff"firewallallowlist"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"tokenMatchesHaystack: long tokens match compact haystack"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3tokenMatchesHaystackTb4b4b4(Ta5d6ff"darkmode"Tb4b4b4, Ta5d6ff"dark mode theme"Tb4b4b4, Ta5d6ff"darkmodetheme"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3tokenMatchesHaystackTb4b4b4(Ta5d6ff"zzz"Tb4b4b4, Ta5d6ff"dark mode"Tb4b4b4, Ta5d6ff"darkmode"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"matchesSettingSearch: empty query matches"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff" "Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"matchesSettingSearch: single token substring"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.theme"Tb4b4b4, Ta5d6ff"app.dark_theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"dark"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"zzz"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"matchesSettingSearch: all tokens must match (AND)"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.stranger_protection"Tb4b4b4, Ta5d6ff"block"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"stranger block"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.stranger_protection"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"stranger block"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"matchesSettingSearch: hyphenated query matches spaced haystack"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.dark_theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"dark-mode"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.dark_theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"darkmode"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"matchesSettingSearch: resolves i18n keys with dots"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"app.theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"Theme"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"matchesSettingSearch: treats = prefix as literal text"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"=index.mu"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"index.mu"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"=index.html"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"html"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"matchesSettingSearch: tab labels in extras"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"settings.tabs.network"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"network"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3matchesSettingSearchTb4b4b4(Tb4b4b4[Ta5d6ff"=stranger protection"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4, Ta5d6ff"stranger"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"buildSettingsSearchHaystack folds translated snippets"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Tb4b4b4{ Te6edf3haystackTb4b4b4, Te6edf3compactHaystack Tb4b4b4} Tff7b72= Te6edf3buildSettingsSearchHaystackTb4b4b4(Tb4b4b4[Ta5d6ff"app.dark_theme"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3haystackTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"dark mode"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3compactHaystackTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"darkmode"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"buildSettingsSearchHaystack splits punctuation so index.mu tokens match"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Tb4b4b4{ Te6edf3haystack Tb4b4b4} Tff7b72= Te6edf3buildSettingsSearchHaystackTb4b4b4(Tb4b4b4[Ta5d6ff"=index.mu"Tb4b4b4]Tb4b4b4, Te6edf3tTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3haystackTb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"index mu"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Served by rngit 1.5.2 - Generated in 0.03s